/*
 * Hunt - a framework for web and console application based on Collie using Dlang development
 *
 * Copyright (C) 2015-2017  Shanghai Putao Technology Co., Ltd
 *
 * Developer: HuntLabs
 *
 * Licensed under the Apache-2.0 License.
 *
 */

module hunt.view.context;

import std.variant;
import std.array;
import std.string;
import std.typetuple;

import hunt.view;

alias TempleContext = ViewContext;
class ViewContext
{
	public Variant[string] vars;

	void opIndexAssign(T)(string name, T val)
	{
		if (name !in vars)
			vars[name] = Variant();
		vars[name] = val;
	}
	void opDispatch(string name, T)(T val)
	{
		if (name !in vars)
			vars[name] = Variant();
		vars[name] = val;
	}
	Variant opDispatch(string name)()
	{
		if(name in vars)
			return Variant(vars[name]);
		return Variant.init;
	}
}